SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE Procedure [dbo].[SP_TCCOMP_PERC_I02]  
/*--------------------------------------------------------*/                  
/*---Empresa              : OFISIS S.A.     --*/                  
/*---Cliente              : OFISIS      --*/                          
/*---Sistema              : Tesoreria     --*/                  
/*---M¸dulo               : Empresa      --*/                  
/*---Programa             : Graba Comprobante Percepcion--*/                  
/*---Script               : TCCOMP_PERC.sql    --*/                  
/*---Nombre SP            : SP_TDMOVI_BANC_I03   --*/                  
/*---Desarrollado por     : Manuel De La Cruz   --*/                  
/*---Fecha Creaci¸n       : 17/11/2011     --*/                  
/*---Base Datos           : Microsoft Sql Server  --*/                  
/*---Versi¸n              : 9.0             --*/                  
/*---Invoca a SP          :        --*/                  
/*--------------------------------------------------------*/                  
/*--------------------------------------------------------*/                
/*---Modificado 1 por     : ---*/                
/*---Fecha Modificaci©n   : ---*/                
/*---Detalle Modificaci©n : ---*/                
/*---------------------------------------------------------*/                
/*--------------------------------------------------------*/                  
/*---Comentarios         --*/                  
/*---                      --*/                  
/*---                      --*/                  
/*--------------------------------------------------------*/                  
/*--------------------------------------------------------*/                  
/*---Drop Proc SP_TCCOMP_PERC_I02      --*/                  
/*---Grant Execute on SP_TCCOMP_PERC_I02 to public  --*/                  
/*---Exec SP_TCCOMP_PERC_I02 '01', 'OFISIS',  '0001', '2004-04-17', 3.256, 'B', 'CON',  '191-00000-01',  Null, '2004',  '04', '00100003', '001', Null, 'ACT' --*/                  
/*-------------------------------------------------------*/                  
@ISCO_EMPR   TD_VC_002,                
@ISCO_USUA_MODI  TD_VC_008_USUA,          
@ISCO_CLIE   TD_VC_020,        
@ISTI_DOCU_ENTI  TD_VC_003,          
@ISNU_DOCU_ENTI  TD_VC_020,               
@ISNU_SERI       TD_VC_005,                
@IDFE_COMP_PERC  TD_DT_001,                
@INFA_TIPO_CAMB  TD_NU_015_006,                
@ISCO_BANC       TD_VC_003,                
@ISNU_CNTA_BANC  TD_VC_020,                
@ISCO_CAJA       TD_VC_008,                
@ISAA_BACA       TD_VC_004,                
@ISMM_BACA       TD_VC_002,                
@ISNU_COMP_BACA  TD_VC_008,                
@ISCO_UNID_CONC  TD_VC_003,                
@ISCO_MONE       TD_VC_003,           
@ISNU_DOCU       TD_VC_020,        
@INIM_DOCU   TD_NU_015_006,        
@OSNU_COMP_PERC  TD_VC_020 OUTPUT                
                
 As                  
Declare                           
@VSCO_MONE_NACI  TD_VC_003,                
@VSCO_MONE_EXTR  TD_VC_003,                
@VSST_AGEN_PERC  TD_VC_001,                
@VSCO_TIAU_CLIE  TD_VC_001,                
@VSCO_TIPO_OPER  TD_VC_003,                
@VSCO_COND_PAGO  TD_VC_003,                
@VSNU_SERI   TD_VC_005,                              
@VSNO_ENTI    TD_VC_100,                 
@VSNU_RUCC    TD_VC_020,                
@VSNU_COMP_PERC  TD_VC_020,                
@VSDE_OBSE   TD_VC_100,        
@VSTI_CAMB TD_VC_001,         
@VSTI_ORIG TD_VC_001                
                
                  
Begin Tran SP_TCCOMP_PERC_I02                          
                
  Select @VSTI_CAMB = TI_CAMB, @VSTI_ORIG = TI_ORIG                                    
  From TTFACA_OPCI                                    
  Where CO_EMPR = @ISCO_EMPR                                    
  And CO_MODU = 'TEEM0001'                                    
  And CO_MENU = 'FTEEMAJ'                                   
                              
  If ( @VSTI_CAMB Is Null Or @VSTI_ORIG Is Null )       
   Select @VSTI_CAMB = TI_CAMB, @VSTI_ORIG = TI_ORIG                                    
   From TMPARA_TESO        
   Where CO_EMPR = @ISCO_EMPR                             
        
 Select @VSCO_MONE_NACI = CO_MONE_DEFA,              
   @VSCO_MONE_EXTR = CO_MONE_EXTR,              
   @VSST_AGEN_PERC = ST_AGEN_PERC,              
   @VSCO_TIAU_CLIE = CO_TIAU_CLIE,              
   @VSCO_TIPO_OPER = CO_TIPO_OPER              
 From TMPARA_TESO                          
 Where CO_EMPR = @ISCO_EMPR                                 
        
 -- Documento Retencion ---                  
 --Exec SP_TTDOCU_CNTB_Q02 20, @OSTI_DOCU_CPER OUTPUT                 
        
  Select  @VSNO_ENTI = NO_AUXI, @VSNU_RUCC = NU_RUCS                                    
  From  TMAUXI_EMPR                                     
  Where  CO_EMPR = @ISCO_EMPR                                    
  And TI_AUXI_EMPR = 'C'                                    
  And CO_AUXI_EMPR = @ISCO_CLIE        
               
 -- Condicion de Pago ---                  
 Select @VSCO_COND_PAGO = Max (TI_COND)                   
 From TTCOND_PAGO                  
 Where CO_EMPR = @ISCO_EMPR                  
 And NU_DIAS = 0                   
 And ST_CTCB = 'S'                   
 And TI_COND = 'CON'                  
                      
                    
 --Hay Percepcion                 
 IF @VSST_AGEN_PERC = 'S' And @INIM_DOCU > 0                
 Begin                          
            
         
  Select @VSNU_SERI = Ltrim(RTrim(@ISNU_SERI))                
  /* Genero el último correlativo para el documento comp. de retención */                          
  Exec SP_TTULTI_CORR_I01 @ISCO_EMPR,@ISCO_USUA_MODI, @ISTI_DOCU_ENTI, @VSNU_SERI, @ISNU_DOCU_ENTI OUTPUT                          
  If @@error <> 0                
  Begin                
   Rollback Tran SP_TCCOMP_PERC_I02                
   Return                
  End                
               
              
  Insert Into TCCOMP_PERC                
  (CO_EMPR, NU_COMP_PERC, FE_COMP_PERC, CO_MONE,                 
  CO_CLIE, NO_CLIE, NU_RUCC,  CO_BANC,              
  FA_TIPO_CAMB, NU_CNTA_BANC, CO_CAJA, AA_BACA, MM_BACA,                
  NU_COMP_BACA, NU_DOCU, TI_SITU, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI )                          
  Values (                
  @ISCO_EMPR, @ISNU_DOCU_ENTI, @IDFE_COMP_PERC, @VSCO_MONE_NACI,                 
  @ISCO_CLIE, @VSNO_ENTI, @VSNU_RUCC,        @ISCO_BANC,        
  @INFA_TIPO_CAMB, @ISNU_CNTA_BANC, @ISCO_CAJA, @ISAA_BACA, @ISMM_BACA,                
  @ISNU_COMP_BACA, @ISNU_DOCU  ,'ACT', @ISCO_USUA_MODI, GetDate(), @ISCO_USUA_MODI, GetDate())                          
              
  If @@error <> 0                
  Begin                
   Rollback Tran SP_TCCOMP_PERC_I02                
   Return                
  End                
           
  Insert Into TDCOMP_PERC                
  (CO_EMPR, NU_COMP_PERC, NU_SECU, TI_DOCU, NU_DOCU, FE_EMIS,                
  IM_TOTA_CONV, IM_PERC_CONV, IM_PAGO_CONV, IM_COMP_PAGO,                 
  CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI )                          
  Select  TWCOMP_PERC.CO_EMPR, @ISNU_DOCU_ENTI, TWCOMP_PERC.NU_SECU, TWCOMP_PERC.TI_DOCU, TWCOMP_PERC.NU_DOCU, TWCOMP_PERC.FE_EMIS, TWCOMP_PERC.IM_TOTA_CONV, TWCOMP_PERC.IM_PERC_CONV,                
  TWCOMP_PERC.IM_PAGO_CONV, (dbo.FN_TCFACT_CAMB_Q02(@VSCO_MONE_NACI, @ISCO_MONE, @IDFE_COMP_PERC, IM_PERC_CONV, @VSTI_CAMB, @VSTI_ORIG, 'S',                          
  @VSCO_MONE_NACI, @VSCO_MONE_EXTR, @INFA_TIPO_CAMB) ) IM_COMP_PAGO,  @ISCO_USUA_MODI, GetDate(), @ISCO_USUA_MODI, GetDate()              
  From TWCOMP_PERC           
  Where                   
   TWCOMP_PERC.CO_EMPR = @ISCO_EMPR And                  
   TWCOMP_PERC.CO_CLIE = @ISCO_CLIE         
                 
  If @@error <> 0                          
  Begin                          
   Rollback Tran SP_TCCOMP_PERC_I02              
   Return              
  End                      
               
  INSERT INTO TMDOCU_CLIE (CO_EMPR, CO_CLIE, CO_TIPO_DOCU, NU_DOCU_CLIE,                       
  CO_TIPO_OPER, CO_COND_PAGO, FE_EMIS,  CO_UNID_CONC, FE_VENC,                       
   FA_TIPO_CAMB, CO_MONE,                       
  IM_BRUT_AFEC, IM_BRUT_INAF, IM_GAFI, IM_MORA, IM_FLET,                
  ST_AFEC_GAFI, ST_AFEC_MORA, ST_AFEC_FLET, ST_DCT1_BRAF, ST_DCT1_BRIN,                       
  ST_DCT1_GAFI, ST_DCT1_MORA, ST_DCT1_FLET, ST_DCT2_BRAF, ST_DCT2_BRIN,                       
  ST_DCT2_GAFI, ST_DCT2_MORA, ST_DCT2_FLET, PC_DCT1, IM_DCT1,                       
  PC_DCT2, IM_DCT2, PC_IMP1, IM_IMP1,                       
  PC_IMP2, IM_IMP2, PC_IMP3, IM_IMP3, IM_TOTA,                       
  IM_PAGA, CO_ESTA_DOCU, ST_CONT, TI_CLIE,                
  DE_OBSE,                
  CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)                      
  VALUES (@ISCO_EMPR,  @ISCO_CLIE, @ISTI_DOCU_ENTI , @ISNU_DOCU_ENTI,                       
  @VSCO_TIPO_OPER, @VSCO_COND_PAGO, @IDFE_COMP_PERC, @ISCO_UNID_CONC, @IDFE_COMP_PERC,                       
  @INFA_TIPO_CAMB, @VSCO_MONE_NACI,                       
  0, 0, 0, 0, 0,                       
  'N', 'N', 'N', 'N', 'N',                       
  'N', 'N', 'N', 'N', 'N',                       
  'N', 'N', 'N', 0, 0,                      
  0, 0, 0, 0,                       
  0, 0, 0, 0, @INIM_DOCU,        
  0,        
  'PAG', 'N', NULL,                 
  @VSDE_OBSE,                
  @ISCO_USUA_MODI, Getdate(), @ISCO_USUA_MODI, Getdate() )                      
  If @@error <> 0                          
  Begin                          
   Rollback Tran SP_TCCOMP_PERC_I02              
   Return              
  End                      
               
 End -- Fin Si Hay Percep                
               
 Delete TWCOMP_PERC                  
 Where                   
 CO_EMPR = @ISCO_EMPR And                  
 CO_CLIE = @ISCO_CLIE         
        
 Select @OSNU_COMP_PERC = @ISNU_DOCU_ENTI                
              
commit Tran SP_TCCOMP_PERC_I02                
Return                 
/*------------------------ Fin ------------------------------*/ 
GO
